<html>
<head><meta charset="utf-8"><title>General rebasing etiquette · general · Zulip Chat Archive</title></head>
<h2>Stream: <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/index.html">general</a></h2>
<h3>Topic: <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/General.20rebasing.20etiquette.html">General rebasing etiquette</a></h3>

<hr>

<base href="https://rust-lang.zulipchat.com">

<head><link href="https://rust-lang.github.io/zulip_archive/style.css" rel="stylesheet"></head>

<a name="180592574"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/General%20rebasing%20etiquette/near/180592574" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Paul Faria <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/General.20rebasing.20etiquette.html#180592574">(Nov 13 2019 at 05:11)</a>:</h4>
<p>When you all rebase, do you usually ensure that your commits build after each rebase conflict resolution? Or do you typically rebase as carefully as possible, but then only run a build once at the end? Do you change your strategy depending on the number of commits in the branch? Is there another alternative I haven't thought of?</p>



<a name="180593656"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/General%20rebasing%20etiquette/near/180593656" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nagisa <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/General.20rebasing.20etiquette.html#180593656">(Nov 13 2019 at 05:36)</a>:</h4>
<p>there’s no expectation of intermediate commits building at all</p>



<a name="180593659"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/General%20rebasing%20etiquette/near/180593659" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nagisa <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/General.20rebasing.20etiquette.html#180593659">(Nov 13 2019 at 05:36)</a>:</h4>
<p>when we bisect we bisect merge commits.</p>



<a name="180594056"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/General%20rebasing%20etiquette/near/180594056" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/General.20rebasing.20etiquette.html#180594056">(Nov 13 2019 at 05:46)</a>:</h4>
<p>I sometimes will rebase into intermediate commits, but I agree with <span class="user-mention" data-user-id="123586">@nagisa</span> that we generally don’t expect/force PR’s to preserve buildability. Sometimes the only benefit of fragmenting PR into commits is for reviewability alone</p>



<a name="180594707"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/General%20rebasing%20etiquette/near/180594707" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Paul Faria <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/General.20rebasing.20etiquette.html#180594707">(Nov 13 2019 at 05:57)</a>:</h4>
<p>Thank you, that's helpful feedback!</p>



<a name="180600353"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/General%20rebasing%20etiquette/near/180600353" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/General.20rebasing.20etiquette.html#180600353">(Nov 13 2019 at 07:52)</a>:</h4>
<p>One advantage of buildable commits is that you can more easily split out earlier parts of the PR</p>



<a name="180600357"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/General%20rebasing%20etiquette/near/180600357" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/General.20rebasing.20etiquette.html#180600357">(Nov 13 2019 at 07:52)</a>:</h4>
<p>this can be useful for the PR author</p>



<a name="180600366"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/General%20rebasing%20etiquette/near/180600366" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/General.20rebasing.20etiquette.html#180600366">(Nov 13 2019 at 07:53)</a>:</h4>
<p>(<a href="https://github.com/rust-lang/rust/pull/65324" target="_blank" title="https://github.com/rust-lang/rust/pull/65324">https://github.com/rust-lang/rust/pull/65324</a> is an example)</p>



<a name="180623033"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/General%20rebasing%20etiquette/near/180623033" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jake Goulding <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/General.20rebasing.20etiquette.html#180623033">(Nov 13 2019 at 13:04)</a>:</h4>
<p>Outside of Rust compiler world, yes, I default to ensuring that every commit builds, lints, and passes tests. When doing an interactive rebase, theres the <code>x</code> command which allows you to run custom scripts like a test suite or linter.</p>



<a name="180623263"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/General%20rebasing%20etiquette/near/180623263" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jake Goulding <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/General.20rebasing.20etiquette.html#180623263">(Nov 13 2019 at 13:06)</a>:</h4>
<p>I would muse that my way is the best way (right...) but that the rustc build times prevent me from doing the build / test steps. And the lack of consistently-applied rustfmt means I cannot easily script rustfmt. So I let the broken windows stay broken.</p>



<a name="180623411"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/General%20rebasing%20etiquette/near/180623411" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jake Goulding <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/General.20rebasing.20etiquette.html#180623411">(Nov 13 2019 at 13:08)</a>:</h4>
<p>In my own Rust projects (and other languages) I do all the cleanliness. I wouldn't be surprised if I spend more noticeably time reorganizing my commits than most other people. My hope is that future me appreciates it.</p>



<hr><p>Last updated: Aug 07 2021 at 22:04 UTC</p>
</html>